package com.study.myupdate.util;

import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.os.Build;

import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

/**
 * 权限工具
 */
public class MPermissionUtil {
    /**
     * 检查权限
     * 当targetSdkVersion <= Android 6.0（API 级别 23）开始，
     * 用户就可以随时将任意APP的权限取消
     *
     * @param context
     * @param permission
     * @return true：拥有该权限;false:没有该权限
     */
    public static boolean checkPermission(Context context, String permission) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { // Android 6.0之前不用做处理
            return true;
        }

        if (ContextCompat.checkSelfPermission(context,
                permission) == PackageManager.PERMISSION_GRANTED) {
            return true;
        } else {
            return false;
        }
    }


    /**
     * 申请权限
     *
     * @param activity
     * @param permission
     * @param requestCode
     */
    public static void requestPermission(Activity activity, String permission, int requestCode) {
        if (ActivityCompat.shouldShowRequestPermissionRationale(activity,
                Manifest.permission.WRITE_EXTERNAL_STORAGE)) { // 用户点击了取消，勾选了不再询问后的操作,提示相应信息
            AlertDialog.Builder builder = new AlertDialog.Builder(activity);
            builder.setTitle("提示");
            builder.setMessage("我们需要这个权限来进行文件的读取操作,没有该权限将无法进行此操作，你可以在“设置”——>“权限管理”中找到当前应用，并开启文件读取权限!");
            builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            });
            builder.show();
        } else {
            ActivityCompat.requestPermissions(activity, new String[]{permission},
                    requestCode);
        }
    }
}
